#ifndef TEXTURE_SHADER_PROGRAM_H
#define TEXTURE_SHADER_PROGRAM_H

#include <QOpenGLFunctions>
#include <QOpenGLShader>
#include <QOpenGLShaderProgram>
#include "shader_program.h"

class TextureShaderProgram : public ShaderProgram {
    public:
        explicit TextureShaderProgram(const char* vetexShaderSrc, const char* fragmentShaderSrc):
            ShaderProgram(vetexShaderSrc, fragmentShaderSrc){
                initLocations();
            };
        ~TextureShaderProgram() = default;

        void initLocations() override;

    public:
        inline int getAttrTextureCoordinate() {
            return m_aTextureCoordinate;
        };
        inline int getUniformTextureUnit() {
            return m_uTextureUnit;
        };

    private:
        int m_aTextureCoordinate = -1;
        int m_uTextureUnit = -1;
};
#endif // TEXTURE_SHADER_PROGRAM_H
